package com.yilin.tms.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yilin.tms.core.entity.system.system.Menu;
import com.yilin.tms.core.entity.system.system.MenuOperate;
import com.yilin.tms.core.entity.user.UserType;
import com.yilin.tms.core.entity.user.grant.GrantMenu;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public interface IGrantMenuService extends IService<GrantMenu> {

    List<Menu> getGrantMenuOperateList(UserType userType, String memberTypeId);

    Map<String, String[]> checkAuthorityMap(UserType userType, String memberTypeId, Map<String, String[]> authorityMap);

    List<Menu> getAllMenuList();

    Map<String, ArrayList<MenuOperate>> getMenuOperateListByMenuCodes(String[] menuCodes);

    List<Menu> getGrantMenuList(String memberTypeId);

    Map<String,ArrayList<MenuOperate>> getGrantMenuOperateListMap(String memberTypeId, String[] menuCodes);

    List<String> getGrantMenuCodeList(String memberTypeId);

    List<String> getGrantMenuOperateCodeList(String memberTypeId, String menuCode);

    void updateGrantMenuList(String memberTypeId, Map<String, String[]> authorityMap);

    void removeGrantMenu(String memberTypeId, String menuId);


    void removeGrantMenuOperate(String memberTypeId, String menuCode, String menuOperateCode);


}
